package top.codecrab.eblog.tasks;

import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import top.codecrab.eblog.entity.Sign;
import top.codecrab.eblog.service.SignService;

/**
 * @author 王刚
 * @since 2022年03月19日 1:34
 */
@Slf4j
@Component
public class SignCleanTask {

    @Autowired
    private SignService signService;

    /**
     * 每天凌晨0点吧上一天没有签到的给删除掉
     */
    @Scheduled(cron = "0 0 0 * * ?")
    public void task() {
        // 由于定时任务是0点执行，所以这里直接获取的就是昨天零点
        DateTime yesterday = DateUtil.offsetDay(DateTime.now(), -1);
        // 为了保险起见，再获取一下昨天的起始日期
        DateTime beginOfDay = DateUtil.beginOfDay(yesterday);

        // 删除所有修改时间小于beginOfDay的数据，你的修改日期比天0点还小，就代表没签到，把他删除
        signService.remove(
            new QueryWrapper<Sign>()
                .lt("modified", beginOfDay)
        );
    }

}
